Observation、State 与数据流:先确定所有权,再谈刷新
cornerstone / advanced用“谁拥有、谁读取、谁写入”三个问题,建立 SwiftUI Observation 的可扩展数据流,并厘清 State、Bindable、Environment 与旧式 ObservableObject 的边界。
18SERIES / 08
按建议顺序排列的连续阅读路径。每一篇都可以独立阅读,也能与前后章节组合。
用“谁拥有、谁读取、谁写入”三个问题,建立 SwiftUI Observation 的可扩展数据流,并厘清 State、Bindable、Environment 与旧式 ObservableObject 的边界。
18从 SwiftUI 的尺寸协商出发,实现带缓存的流式标签布局,并处理未指定尺寸、边界原点、布局切换和常见性能陷阱。
15用轻量 Route 数组驱动 NavigationStack,把 URL 解析、业务校验、场景恢复与失效降级统一成可测试的导航状态。
17从状态更新事务出发,区分普通动画、PhaseAnimator 与 KeyframeAnimator,并处理多轨时间、打断、每帧成本和 Reduce Motion。
15区分语义 View、Canvas 即时绘制和 SwiftUI Shader,建立可降级、可访问并能用 Instruments 验证的视觉效果管线。
13用 scrollTransition 和 visualEffect 构建位置驱动视觉,同时避免 GeometryReader 写回、身份抖动与 lazy 容器估算失真。
11从语义结构、可重排布局和运动替代方案出发,为 SwiftUI 建立贯穿设计、实现与测试的无障碍工程闭环。
19用 Xcode 26 SwiftUI Instrument、Cause & Effect Graph 与对照录制定位长更新、高频失效和不必要依赖。
8